<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Promise基本语法</title>
</head>
<body>
  <script>
    /* 
      实例化 Promise 对象
      resolve, reject 顺序也很重要
      状态：
      1.pending   等待中  初始状态
      2.fulfilled 已完成  异步成功
      3.reject    已失败  异步失败

      创建：
      const promise = new Promise(function(resolve, reject) {
        // code
      })

      then:
      在then方法中调用promise返回的结果

      thenable:
      所有promise对象都是一个thenable，都含有then方法

      错误处理：
      catch捕获promise抛出的错误
      如果已经reslove()，则无法接收到错误
    */
    const p = new Promise(function(resolve, reject) {
      setTimeout(function() {
        /* 
          同时写 只返回 一个 状态
          resolve 对应成功
          reject  对应失败
        */
        // let data = '数据库中的用户数据';
        // resolve(data);

        let err = '数据读取失败';
        reject(err); 
      }, 1000)
    });

    // 调用 promise 对象的 then 方法
    p.then(value => {
      console.log(value);
    }, err => {
      console.log(err);
    })
  </script>
</body>
</html>